package com.icloud.article.boot.dto;

import com.icloud.common.core.constant.ValidateConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

@Setter
@Getter
public class MarketGainersLosersPageDto implements Serializable {
    @ApiModelProperty(value = "Optionally offset the start (1-based index) of the paginated list of items to return. Default=1")
    private Integer start=1;
    @ApiModelProperty(value = "Optionally specify the number of results to return. Default=100")
    private Integer limit=100;
    @ApiModelProperty(value = "Adjusts the overall window of time for the biggest gainers and losers. Default=\"24h\"", example = "\"1h\"\"24h\"\"30d\"\"7d\"", required = true)
    @NotEmpty(message = ValidateConstant.NOT_EMPTY)
    private String timePeriod="24h";
    @ApiModelProperty("Optionally calculate market quotes in up to 120 currencies at once by passing a comma-separated list of cryptocurrency or fiat currency symbols. Each additional convert option beyond the first requires an additional call credit. A list of supported fiat options can be found here. Each conversion is returned in its own \"quote\" object.")
    private String convert;
    @ApiModelProperty("Optionally calculate market quotes by CoinMarketCap ID instead of symbol. This option is identical to convert outside of ID format. Ex: convert_id=1,2781 would replace convert=BTC,USD in your query. This parameter cannot be used when convert is used.")
    private String convertId;
    @ApiModelProperty("What field to sort the list of cryptocurrencies by. Default=\"percent_change_24h\"")
    private String sort;
    @ApiModelProperty(value = "The direction in which to order cryptocurrencies against the specified sort.", example = "\"asc\", \"desc\"")
    private String sortDir;
}
